using Admin2024.Domain.Entity.System;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata.Builders;

namespace Admin2024.EntityFrameworkCore.EntityConfiguration;

public class AppUserConfiguration:BaseEntityConfiguration<AppUser>
{
    public override void Configure(EntityTypeBuilder<AppUser> builder)
    {
        base.Configure(builder);

        // 表名
        builder.ToTable("app_user");

        // 每个实体只要配置独有的属性即可，顺序从3开始
        builder.Property(p => p.Username)
        .HasColumnName("username")
        .HasComment("用户名")
        .HasColumnOrder(3);

        builder.Property(p => p.Password)
        .HasColumnName("password")
        .HasComment("密码")
        .HasColumnOrder(4);

        builder.Property(p => p.Salt)
        .HasColumnName("salt")
        .HasComment("密码")
        .HasColumnOrder(5);

        builder.Property(p => p.Nickname)
        .HasColumnName("nickname")
        .HasComment("昵称")
        .HasColumnOrder(6)
        .HasDefaultValue("未命名用户");
        

        builder.Property(p => p.Avatar)
        .HasColumnName("avatar")
        .HasComment("头像")
        .HasColumnOrder(7);      

        builder.Property(p => p.Telephone)
        .HasColumnName("telephone")
        .HasComment("手机号")
        .HasColumnOrder(8)
            .HasDefaultValue("暂无");

        builder.Property(p => p.Email)
        .HasColumnName("email")
        .HasComment("电子邮箱账号")
        .HasColumnOrder(9)
            .HasDefaultValue("暂无");

        builder.Property(p => p.Weixin)
        .HasColumnName("weixin")
        .HasComment("微信账号")
        .HasColumnOrder(10)
            .HasDefaultValue("暂无");

        builder.Property(p => p.QQ)
        .HasColumnName("qq")
        .HasComment("qq账号")
        .HasColumnOrder(11)
            .HasDefaultValue("暂无");
    }
}